Cellular communication systems are well known and consist of many types, including land mobile radio, cellular radiotelephone, and personal communication systems. With each communication system, data is transmitted between a transmitting communication device and a receiving communication device via a communication resource that includes a communication channel that operates over a physical resource, typically a frequency bandwidth. Typically, the data, or payload, is compiled into a data packet that includes a header and/or a trailer. The header and trailer include information that is used by the system to process the data, and may include information such as a source and a destination of the data, a packet number corresponding to a sequence of packets, a requested quality of service, a payload length, and other data processing related information.
In order to facilitate an exchange of data among multiple components of a cellular communication system, understandings known as protocols have been developed. The protocols specify the manner of interpreting each data bit of a data packet exchanged across the network. In order to simplify network designs, several well-known techniques of layering the protocols have been developed. Protocol layering divides the network design into functional layers and then assigns separate protocols to perform each layer's task. By using protocol layering, the protocols are kept simple, each with a few well-defined tasks. The protocols can then be assembled into a useful whole, and individual individual protocols can be removed or replaced as needed. Layered representation of protocols is commonly known as a protocol stack. A protocol stack commonly used for the interconnection of network systems is TCP/IP (Transmission Control Protocol/Internet Protocol) Suite, named for two of the protocols used in the stack. The TCP/IP protocol stack includes both TCP and UDP (User Datagram Protocol) as possible transport layer protocols.
Known within the art is the concept of Application Programming Interface (API). An API is used to present a standardized interface to a given protocol layer for services available to a higher level protocol layer or application. The API typically is documented a set of function calls. Within the TCP/IP Suite the well known API is called the Socket Abstraction Layer or just the sockets interface.
Also known within the art is the concept of a Socket. A socket is the combination of an IP Address and port number. A socket is unique to a transport protocol. For instance the TCP socket X is distinct from the UDP socket X. A pair of IP Addresses and port numbers is called a socket pair. Socket pairs are typically used to provide two-way communication between applications on two IP hosts. A socket is identified to the application through a socket descriptor.
The TCP/IP protocol stack typically includes five layers, from highest to lowest, an application layer, a transport layer, a network layer, a link layer, and a physical layer. Each layer in a transmitting communication device typically attaches a header and/or trailer to the payload that instructs a corresponding layer in a receiving communication device or an intervening system component. The higher layer headers are typically encapsulated within the lower layer headers. However, the addition of headers to a data packet consumes system bandwidth. System bandwidth is limited and the headers included in data packets impose constraints upon bandwidth utilization and system capacity.
Known within the art are several header compression mechanisms (RFC 2507, RFC2508, etc) that compress one or more of the protocol layer headers at one side of a logical link to create a compressed header. After transmitting the payload and compressed header across the logical link, the compressed header is then to reveal the original header. These methods work on known protocol headers such as TCP, UDP, and IP. However, even with the compressed header, the bandwidth consumed by these compressed headers imposes constraints upon bandwidth utilization and system capacity.
Therefore, a need exists for a method and an apparatus for eliminating the need to send protocol headers, compressed or uncompressed, across a communication link for the majority of tranmissions, thereby increasing the throughput of a communication channel and the capacity of a communication system.